# 字节级别的文件修复脚本
import os
import shutil

# 文件路径
original_file = r'd:\未知\yolo_apply\video_processing\video_processor.py'
backup_file = r'd:\未知\yolo_apply\video_processing\video_processor.py.backup'
temp_file = r'd:\未知\yolo_apply\video_processing\video_processor_bytefixed.py'

# 备份当前文件
shutil.copy2(original_file, original_file + '.byte_backup')
print(f"已创建备份: {original_file}.byte_backup")

# 读取备份文件内容（文本模式，处理行）
with open(backup_file, 'r', encoding='utf-8') as f:
    lines = f.readlines()

# 找到问题区域
problem_start = -1
problem_end = -1
for i, line in enumerate(lines):
    if '# 错误率过高时触发警告和恢复' in line:
        problem_start = i
    elif problem_start != -1 and 'error_count = 0' in line and i > problem_start:
        problem_end = i
        break

print(f"问题区域从第{problem_start+1}行到第{problem_end+1}行")

# 创建新的文件内容
new_lines = []

# 添加问题区域之前的所有行
for line in lines[:problem_start]:
    new_lines.append(line)

# 添加注释行，移除所有可能有问题的代码
new_lines.append('# 错误率过高时触发警告和恢复\n')

# 添加问题区域之后的所有行
for line in lines[problem_end+1:]:
    new_lines.append(line)

# 写入临时文件，确保使用Unix风格的换行符和正确的编码
with open(temp_file, 'w', encoding='utf-8', newline='\n') as f:
    f.writelines(new_lines)

print(f"已创建字节级修复的临时文件: {temp_file}")
print(f"移除了{problem_end - problem_start + 1}行可能有问题的代码")

# 替换原文件
os.replace(temp_file, original_file)
print(f"已用字节级修复的文件替换原文件")
print("现在让我们再次尝试编译...")